浅谈程序员的“内卷化”
一、什么是内卷化
最近开始了解到一个很有意思的词——“内卷化”,如果你还不知道这个词,那就非常建议往下看。
什么是内卷化?内卷化,亦称过密化,最初由文化人类学家亚历山大·戈登威泽提出,用于描述社会文化模式的变迁规律。当一种文化模式进入到最终的固定状态时,便逐渐局限于自身内部不断进行复杂化的转变,从而再也无法转化为新的文化形态。在中国语境下,内卷化概念最初闻名自历史学家杜赞奇对于古代中国经济生活的研究成果中。杜赞奇借用内卷化一词描述清代人口爆炸,廉价劳动力过剩,从而无法带动技术革新,使得古代中国的经济形态长期停滞于小农经济阶段的发展状态。
好吧,我相信你没看懂!
举个例子,上图!
这段对话,就形象地为“内卷化”现象做了解释。
二、程序员的“内卷化”
程序员本来是一个需要高学历,高技能的工作。但是随着“科技发展”,慢慢的自称自己为“码农”、“搬砖者”,而且一边喊着“35岁危机”,一边996的干活。身体慢慢的发胖(过劳肥),头发渐渐稀少。
1、码农时代
上世纪 七八十 年代,IT工程师们使用汇编语言操作大型机,码出了各种操作系统,各种数据库,那些年的前辈们,现在后辈们望尘莫及,可能连“尘”都看不见。后来PC的出现,专业院校培养出身的学生们,开始进入职场,运用各种办公软件 、应用软件 和中间件开启了IT工程师的生涯,他们成为了现在各厂的“爸爸”们。前些年兴起了XX培训机构,缴费一万,三个月保证上岗,“全民学Python”。程序员的门槛一下子变低了,每年无数的新人进入这个行业,只要有电脑就能自学,“码农时代”到来了!
2、开源时代
现在的程序员写代码变得比原来的程序员强,因为他们有强大的基础库。springboot 写出来的最简单的项目,以前你想写出来都是不太可能的,你需要实现几十万行码。就算你能做到, 到了今天也没什么稀奇的了,刚刚毕业的程序员随便就弄出来了,你以前写代码的那些能力赶不上了。有人说,我会比新人学得快,学得好。我认为这话有道理,但是不一定。那工作两年后的人,学习新技术和你一样快,没什么差别。
这几年大数据时代的来临,很多开源框架逐渐成熟,以前针对大数据了的计算和存储要费劳力也不一定搞定,现在MR计算框架和Spark轻松帮你搞定PB级别的数据,更可怕的是你只需要会写SQL就行!刚毕业的学生一个月可能就掌握了基本的海量数据查询功能。
很多公司会出现一种情况——“工资倒挂”,大部分原因就是你的工作很容易被代替导致的。但是很多老员工心里不服气啊,凭什么我工作5年了,刚毕业的一个学生跟我拿一样的工资?我来告诉你为什么。这些老员工一般只依赖自己刚进公司那两年为公司写了大量的代码,然后一直维护了三年,没有学习新的技术。而来公司写的程序也许只适合现在的公司,他的这个技能出去后很可能就失业了,所以,他的5年经验价值是很小的。而刚毕业的学生,使用的最新的技术框架,很快做出来了你之前的项目效果,而且新的框架还更简单,另外刚毕业的学生还比你更能加班!
3、加班文化
以前的程序员,很少有加班的,根本没听说过“996福报”。但是有一天,部门出现了一个同事只依靠白天完不成工作,就开始晚上加班,加班了2个小时,把工作赶上正常进度了,但是该同事想,如果再加班两个小时那不就比正常进度快了嘛!该同事996一个月,竟然拿到了高绩效,老板还表扬了这种加班。于是,其他同事开始效仿,就算每天能正常完成工作,还是会加班,有的赶赶进度,有的就是划划水。大家为了保住工作,都开始加班,慢慢的加班对于拿高绩效就不再有竞争力了,而是成了“标配”。此时,那些不愿加班的人,想要高效完成工作,正常过下班生活的程序员成为了“另类”,老板会因为这些员工的“态度”问题,还不给高绩效。慢慢的所有人都开始了996,大家“工作态度”高度一致,老板还是得从其他方面进行评估工作,但是此刻加班已经形成一种“文化”。最后,老板成了最终的获益者,程序员亲手毁了自己的工作环境,而且在长期加班工作中,自己的思考变的迟钝了,不在有那么多创意想法,不会再想那么多提高工作效率的方法,因为只要靠“加班”就行了。
三、如何不被“内卷化”
现在我们已经明确的知道程序员的“内卷化”现象,我们都不希望自己被“内卷化”,那么如何避开“内卷化”呢?
1、Stay Hungry, Stay Foolish
程序员要时刻保持好奇心,持续学习。IT技术这些年发展太快,不想造原子弹那样的高科技。不管是后端的springboot,前端vue,还是现在的各种大数据计算引擎,作为一线开发者的我们都要时刻保持学习的态度,走出自己的舒适区。
2、工程能力
很多同事写代码速度一流的,但是你让他从头开始部署一个项目,他依然不知道自己要怎么做。部署上,页面报错了依然不知道从哪解决,这些程序员一般都有一个口头禅“我的程序在本地跑的没问题,你看看是不是你的程序有bug啊”,这就是缺乏工程能力的表现。所谓工程能力,我把它分为这几部分:架构、规范、管理、排错这几个能力。
架构
架构不仅仅是指技术架构,对业务的深度了解也是重要的一部分。作为一个工作多年的程序员,要学会了解架构知识,一个好的架构能够在以后业务的发展中避免平台的重构。要知道整个平台是怎么运转起来的,数据流转的全流程是怎样的,客户的需求是怎样的。
规范
程序员是最讨厌写文档、定规范的,都喜欢自由。但是,很多次生产环境的意外宕机都是缺乏规范引起的,不管是流程规范,还是操作规范,在平时,我们都要养成“规范”能力,就像你每次上完厕所后会洗手一样。“敬畏生产环境”也不只是喊喊,功夫要用在平时。
管理
程序员都不喜欢被管理,但是不管你是不是管理者,都要学会管理。一是管理自己日常的工作,有序开展,避免无效加班;而是学会管理同事,让同事更高效的配合自己完成工作,也许某一天你就会成为你旁边同事们的管理者。
排错
我认为这是工程能力最重要的表现之一,程序中日志记录要成为每个工程师的习惯。你多年的工作经验也许并不在于你代码写的快,而是在于你比别人更快的定位问题、解决问题。
3、学会思考
互联网刚开始的阶段,很多人都喊“我有idea,就缺程序员了”,而现在越来越多的人喊“大家有什么idea,我来负责开发”,而这也是现在好的产品经理越来越值钱的重要原因。
没有思考,我们就会一直工作,一直加班,循环往复。学会思考,我们才能找到高效工作的方法,避免“恶性加班”,才能提高自己的编程能力,而不是提高编程的“熟练度”。
也许有一天,你正好有一个idea,自己也能实现,可能一不小心就“财富自由”,走向人生巅峰了。
四、结尾
看了这么多,程序员表示也很难。其实回想一下自己进入公司的初衷,如果是为了混饭吃,那你确实很担心这个,很快也许就会有替换你的廉价劳动力了。如果不是,那应该没有什么好担心的,你已经知道如何找到自己的核心竞争力了。